Resumen—Semat (Software Engineering Method and Theory)
es una iniciativa que permite representar prácticas comunes de
metodologías ya existentes mediante los elementos de su núcleo, los
cuales se describen en términos de un lenguaje. Este lenguaje tiene
una sintaxis gráfica y una textual. La sintaxis textual se describe
mediante el metalenguaje EBNF (Extended Backus-Naur Form)
que se utiliza como notación de gramáticas de libre contexto para
describir un lenguaje formal. Sin embargo, la sintaxis textual de los
elementos del núcleo en algunos casos presenta inconsistencia con
la sintaxis gráfica. Por ello, en este artículo se propone la modifica-
ción del lenguaje textual mediante un análisis gramatical al lengu-
aje de Semat con el fin de lograr una relación consistente entre la
sintaxis textual y gráfica de los elementos del núcleo de Semat.
Palabras clave—Análisis gramatical, EBNF, Semat, sintaxis
textual.
Improving the Consistency
between Textual and Graphical Syntax
of the Language of Semat
Abstract—Semat (Software Engineering Method and Theory) is
an initiative that allows representing common practices of existing
methodologies by its core elements, which are described in terms
of a language. This language has a graphical and a textual syntax.
The textual syntax is described using meta-language EBNF
(Extended Backus-Naur Form), which is used as context-free
grammar notation to describe a formal language. However, the
textual syntax of core elements in some cases is inconsistent with
the graphical syntax. Therefore, in this paper we propose a
modification of textual language by parsing the language of Semat
in order to achieve a consistent relationship between textual and
graphical syntax of the core elements of Semat.
Keywords—Parsing, EBNF, Semat, textual syntax.
I. INTRODUCCIÓN
emat es una iniciativa que apoya un proceso para redefinir
la ingeniería de software con base en una teoría sólida,
principios probados y mejores prácticas. A diferencia de otros
intentos para crear una teoría general de la ingeniería de
software, en Semat se generaliza la ingeniería de software
identificando acciones y elementos universales, que se
describen mediante un lenguaje sencillo y universal que permite
la descripción de las prácticas comunes de metodologías
existentes y así lograr que se puedan evaluar, comparar y
medir [1]. Su núcleo incluye un grupo de elementos esenciales
que son universales para todo esfuerzo de desarrollo de
software y extensibles para usos específicos, lo que permite
asumir que Semat no se resiste ante nuevas ideas, ya que
cualquier metodología se puede representar mediante sus
elementos en el núcleo [2].
El lenguaje de Semat posee una sintaxis abstracta, la cual se
compone de una sintaxis textual y una sintaxis gráfica. La
sintaxis gráfica comprende la representación, una forma visual,
de los elementos del núcleo de Semat, mientras que la sintaxis
textual, se encuentra descrita en el metalenguaje EBNF
(Extended Backus-Naur Form), presenta una descripción
formal de cada uno de los elementos del núcleo [3].
La notación Backus-Naur (BNF por sus siglas en inglés) se
creó inicialmente para describir la sintaxis del lenguaje de
programación ALGOL 60 y se utiliza desde entonces como
notación para las gramáticas libres de contexto, las cuales
permiten describir la estructura sintáctica de muchos (aunque
no todos) lenguajes [4].
Tal como se puede ver en la fig. 1, una gramática consta de
un conjunto de no-terminales, terminales y una serie de reglas
de producción. Un no-terminal se define en una regla de
producción, mientras que un terminal es un símbolo del
lenguaje que se está definiendo. En una regla de producción, el
no-terminal (que aparece en la parte izquierda) se define en
términos de una secuencia de símbolos no-terminales y
terminales (que se encuentran en la parte derecha) [5].
<símbolo> ::= <expresión con símbolos>
Figura 1. Expresión BNF
EBNF es un conjunto de expansiones de BNF, por lo cual
presenta pequeñas diferencias sintácticas y algunas operaciones
adicionales. En ella se incorporan algunos conceptos de la
notación sintáctica de Wirth con el propósito de definir la
gramática de los lenguajes de programación (lenguajes
formales) [6].
En este artículo se propone una revisión de la sintaxis textual
de los elementos del núcleo de Semat, con el fin de encontrar
las inconsistencias existentes entre las representaciones gráficas
de los diferentes elementos y las especificaciones descritas en
la sintaxis textual. Existen elementos gráficos a los cuales les
faltan conexiones que se definen en el lenguaje textual y existen
expresiones que representan de forma incompleta lo que el
lenguaje gráfico muestra. Adicionalmente, estos elementos se
Carlos Mario Zapata Jaramillo, Rafael Esteban Arango Sanchez, Leidy Diana Jiménez Pinzón
Mejoramiento de la consistencia entre la
sintaxis textual y gráfica del lenguaje de Semat
Manuscrito recibido el 19 de abril de 2014; aceptado para la publicación el
17
de junio del 2014.
Todos los autores están con la Universidad Nacional de Co
lombia, sede
Medellín, Colombia
(correos:
{cmzapata, raearangosa, ldjimenezp}@unal.
edu.co).
83 Polibits (49) 2014ISSN 1870-9044; pp. 83–89